package cn.tedu._07weibo.controller;

import cn.tedu._07weibo.base.response.JsonResult;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;

@Slf4j
@Tag(name="上传管理")
@RestController
@RequestMapping("/v1/file/")
public class UploadController {


    @PostMapping("upload")
    public JsonResult uplaod(MultipartFile file) throws IOException {
      //获取原始文件名
        String filename=file.getOriginalFilename();
        //获取文件名中的扩展名：.png
        String suffix=filename.substring(filename.lastIndexOf("."));
        //生成全球唯一的文件名[UUID]：
        filename= UUID.randomUUID()+suffix;
        log.debug("全球唯一文件名："+filename);
        //处理日期路径

        SimpleDateFormat sdf=new SimpleDateFormat("/yyyy/MM/dd/");
        String datePath=sdf.format(new Date());
        //创建目录
        String dirPath="D:/files"+datePath;
        File file1=new File(dirPath);
        if (!file1.exists()){
            file1.mkdirs();
        }
        log.debug("目录名称："+dirPath);
        log.debug("名称："+filename);
        //保存文件
        file.transferTo(new File(dirPath+filename));

        return JsonResult.OK(datePath+filename);
    }

}
